package com.xdwanj.dao;

import com.xdwanj.pojo.Emp;
import com.xdwanj.util.PageBean;

import java.util.List;

public interface EmpDao {

    /**
     * 通过empId获取Emp对象
     *
     * @param eid empId
     * @return Emp对象
     * @throws Exception
     */
    Emp findEmpById(int eid) throws Exception;

    /**
     * 修改员工
     *
     * @param emp 员工对象
     * @return 改变行数
     * @throws Exception
     */
    int updateEmp(Emp emp) throws Exception;

    /**
     * 删除员工
     *
     * @param eid 员工id
     * @return 改变行数
     * @throws Exception
     */
    int deleteEmp(int eid) throws Exception;

    /**
     * 添加员工
     *
     * @param emp     员工对象
     * @param ridList 角色id集合
     * @return 添加好的员工对象
     * @throws Exception
     */
    Emp addEmp(Emp emp, List<Integer> ridList) throws Exception;

    /**
     * 查询员工列表
     *
     * @param queryName     模糊查询关键字
     * @param roid          角色id
     * @param currentPageNo 当前页码
     * @param pageSize      页面大小
     * @return 员工列表
     */
    PageBean<Emp> findEmpList(String queryName, int roid, int currentPageNo, int pageSize) throws Exception;

    /**
     * 插入角色列表
     *
     * @param eid     员工id
     * @param ridList 角色id列表
     * @return 改变行数
     * @throws Exception
     */
    int insertEmpAndRole(int eid, List<Integer> ridList) throws Exception;

    /**
     * 删除某员工的全部角色
     *
     * @param eid 员工id
     * @return 删除函数
     * @throws Exception
     */
    int deleteEmpAndRole(int eid) throws Exception;
}
